function A(){
    this.a = 'a'
    this.b = 'b'
    this.c = function (){
        console.log(this.a)
    }
    this.f = 'f'
}

const w = this

function B(){
    this.d = 'd'
    A.call(w)
}

let f = 'fffff'

let b = new B

console.log(b.f)





// let app = function (){
//     let a = 1
//     return ()=>{
//         console.log(a)
//         a++
//     }
// }
//
// let a = 2
// let f = app()
// f()
// f()
// f()
//
// let fn = app()
// fn()
// fn()
// fn()
// fn()
// fn()
//
//
// app()()
// app()()
// app()()
// app()()







// function fun(n,o) {
//     console.log(o)
//     return {
//         fun:function(m){
//             return fun(m,n);
//         }
//     };
// }
// var a = fun(0); //und
// a.fun(1); //0
// a.fun(2);
// a.fun(3);//undefined,?,?,?
//
// var b = fun(0).fun(1).fun(2).fun(3);//undefined,?,?,?
//
// var c = fun(0).fun(1);
// c.fun(2);
// c.fun(3);//undefined,?,?,?//问:三行a,b,c的输出分别是什么？
